package org.example.lanchain.service;

import org.example.lanchain.bean.User;
import org.example.lanchain.dto.LoginRequest;
import org.example.lanchain.dto.RegisterRequest;
import org.example.lanchain.dto.LoginResponse;

/**
 * 用户服务接口
 */
public interface UserService {
    
    /**
     * 用户登录
     */
    LoginResponse login(LoginRequest request);
    
    /**
     * 用户注册
     */
    User register(RegisterRequest request);
    
    /**
     * 用户登出
     */
    void logout(String token);
    
    /**
     * 根据用户名查找用户
     */
    User findByUsername(String username);
    
    /**
     * 根据邮箱查找用户
     */
    User findByEmail(String email);
    
    /**
     * 验证用户是否存在
     */
    boolean isUserExists(String username, String email);
    
    /**
     * 更新用户信息
     */
    User updateUser(User user);
    
    /**
     * 删除用户
     */
    boolean deleteUser(Long userId);
    
    /**
     * 重置密码
     */
    boolean resetPassword(String email, String newPassword);
    
    /**
     * 验证token
     */
    boolean validateToken(String token);
    
    /**
     * 获取用户信息
     */
    User getUserByToken(String token);
} 